return {
  {
    "stevearc/conform.nvim",
    opts = {
      default_format_opts = {
        timeout_ms = 3000,
        async = false,
        quiet = false,
        lsp_format = "fallback",
      },
      formatters_by_ft = {
        lua = { "stylua" },
        bash = { "shfmt" },
        c = { "clang_format" },
        -- golines 行格式对齐 struct json yaml 对齐好看
        go = { "gofumpt", "goimports_reviser", "golines" },
        -- go = {
        --   formatters = { "gofumpt", "goimports" },
        --   run_all_formatters = true,
        --   format_on_save = false,
        -- },
        python = { "isort", "black" },
        rust = { "rustfmt" },

        html = { "prettierd" },
        json = { "prettierd" },
        jsonc = { "prettierd" },
        javascript = { "prettierd" },
        typescript = { "prettierd" },
        javascriptreact = { "prettierd" },
        typescriptreact = { "prettierd" },
        vue = { "prettierd" },
      },
      format_on_save = {
        lsp_fallback = true,
        async = false,
        timeout_ms = 1000,
      },
      formatters = {
        injected = { options = { ignore_errors = true } },
      },
    },
  },
}
